home *** CD-ROM | disk | FTP | other *** search
/ Visual Cafe 3 / Visual Cafe 3.ISO / Vcafe / Sample.bin / ToggleButtonPanel.java < prev    next >
Text File  |  1998-06-30  |  9KB  |  274 lines

  1. /*
  2.  * @(#)ToggleButtonPanel.java    1.6 98/03/18
  3.  * 
  4.  * Copyright (c) 1997 Sun Microsystems, Inc. All Rights Reserved.
  5.  * 
  6.  * This software is the confidential and proprietary information of Sun
  7.  * Microsystems, Inc. ("Confidential Information").  You shall not
  8.  * disclose such Confidential Information and shall use it only in
  9.  * accordance with the terms of the license agreement you entered into
  10.  * with Sun.
  11.  * 
  12.  * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
  13.  * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  14.  * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
  15.  * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
  16.  * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
  17.  * THIS SOFTWARE OR ITS DERIVATIVES.
  18.  * 
  19.  */
  20.  
  21. import com.sun.java.swing.*;
  22. import com.sun.java.swing.text.*;
  23. import com.sun.java.swing.border.*;
  24.  
  25. import java.awt.*;
  26. import java.awt.event.*;
  27. import java.util.*;
  28.  
  29.  
  30. /**
  31.  * ToggleButtons!
  32.  *
  33.  * @version 1.6 03/18/98
  34.  * @author Jeff Dinkins
  35.  */
  36. public class ToggleButtonPanel extends JPanel 
  37. {
  38.     // The Frame
  39.     SwingSet swing;
  40.  
  41.  
  42.     public ToggleButtonPanel(SwingSet swing) {
  43.     this.swing = swing;
  44.     ButtonGroup group;
  45.  
  46.     setBorder(swing.emptyBorder5);
  47.     setLayout(new BoxLayout(this, BoxLayout.X_AXIS));
  48.  
  49.     // *************** duke ****************
  50.         ImageIcon dukeAnim;
  51.         ImageIcon duke = SwingSet.sharedInstance().loadImageIcon("images/swing.small.gif","Duke waving from a swing");
  52.         ImageIcon dukeWave = SwingSet.sharedInstance().loadImageIcon("images/dukeWave.gif","Duke waving");
  53.  
  54.     // *************** toggle buttons ****************
  55.     // text buttons
  56.     JPanel textButtons = SwingSet.createHorizontalPanel(false);
  57.     textButtons.setAlignmentX(LEFT_ALIGNMENT);
  58.     Border buttonBorder = new TitledBorder(null, "Text ToggleButton", 
  59.                            TitledBorder.LEFT, TitledBorder.TOP,
  60.                            swing.boldFont);
  61.  
  62.     Border emptyBorder = new EmptyBorder(5,5,5,5);
  63.     Border compoundBorder = new CompoundBorder( buttonBorder, emptyBorder);
  64.  
  65.     textButtons.setBorder(compoundBorder);
  66.  
  67.     group = new ButtonGroup();
  68.     JToggleButton button;
  69.     button = new JToggleButton("One", true);
  70.     button.setToolTipText("This is a ToggleButton with Text");
  71.     group.add(button);
  72.         button.setMnemonic('o');
  73.     swing.toggleButtons.addElement(button);
  74.     textButtons.add(button);
  75.     textButtons.add(Box.createRigidArea(swing.hpad10));
  76.     
  77.     button = new JToggleButton("Two");
  78.     group.add(button);
  79.         button.setMnemonic('t');
  80.     button.setToolTipText("This is a ToggleButton with Text");
  81.     swing.toggleButtons.addElement(button);
  82.     textButtons.add(button);
  83.     textButtons.add(Box.createRigidArea(swing.hpad10));
  84.  
  85.     button = new JToggleButton("Three");
  86.     group.add(button);
  87.         button.setMnemonic('h');
  88.     button.setToolTipText("This is a ToggleButton with Text");
  89.     swing.toggleButtons.addElement(button);
  90.     textButtons.add(button);
  91.  
  92.  
  93.     // image buttons
  94.     group = new ButtonGroup();
  95.  
  96.     JPanel imageButtons = SwingSet.createHorizontalPanel(false);
  97.     imageButtons.setAlignmentX(LEFT_ALIGNMENT);
  98.     buttonBorder = new TitledBorder(null, "Image ToggleButtons", 
  99.                            TitledBorder.LEFT, TitledBorder.TOP,
  100.                            swing.boldFont);
  101.     compoundBorder = new CompoundBorder(buttonBorder, emptyBorder);
  102.     imageButtons.setBorder(compoundBorder);
  103.  
  104.     // 1 image
  105.         dukeAnim = SwingSet.sharedInstance().loadImageIcon("images/swing-64.gif","Animated image of Duke swinging on a swing");
  106.     button = new JToggleButton(duke);
  107.     button.setMargin(new Insets(0,0,5,10));
  108.         dukeAnim.setImageObserver(button);
  109.     group.add(button);
  110.     button.setRolloverIcon(dukeWave);
  111.     button.setSelectedIcon(dukeAnim);
  112.     button.setSelected(true);
  113.     button.setToolTipText("This is a ToggleButton with a Icon");
  114.     button.getAccessibleContext().setAccessibleName("Swinging Duke toggle button");
  115.     swing.toggleButtons.addElement(button);
  116.     imageButtons.add(button);
  117.     imageButtons.add(Box.createRigidArea(swing.hpad10));
  118.     
  119.     // 2 images
  120.         dukeAnim = SwingSet.sharedInstance().loadImageIcon("images/swing-64.gif","Animated image of Duke swinging on a swing");
  121.     button = new JToggleButton(duke);
  122.     button.setMargin(new Insets(0,0,5,10));
  123.     button.setRolloverIcon(dukeWave);
  124.         dukeAnim.setImageObserver(button);
  125.     group.add(button);
  126.     swing.toggleButtons.addElement(button);
  127.     button.setSelectedIcon(dukeAnim);
  128.     button.setToolTipText("This is a ToggleButton with a Icon");
  129.     button.getAccessibleContext().setAccessibleName("Swinging Duke toggle button");
  130.     imageButtons.add(button);
  131.     imageButtons.add(Box.createRigidArea(swing.hpad10));
  132.  
  133.     // 3 images
  134.         dukeAnim = SwingSet.sharedInstance().loadImageIcon("images/swing-64.gif","Animated image of Duke swinging on a swing");
  135.     button = new JToggleButton(duke);
  136.     button.setMargin(new Insets(0,0,5,10));
  137.     button.setRolloverIcon(dukeWave);
  138.         dukeAnim.setImageObserver(button);
  139.     group.add(button);
  140.     button.setSelectedIcon(dukeAnim);
  141.     button.setToolTipText("This is a ToggleButton with a Icon");
  142.     button.getAccessibleContext().setAccessibleName("Swinging Duke toggle button");
  143.     swing.toggleButtons.addElement(button);
  144.     imageButtons.add(button);
  145.  
  146.     // Add button panels to buttonPanel
  147.     JPanel buttonPanel = SwingSet.createVerticalPanel(true);
  148.     buttonPanel.setAlignmentX(LEFT_ALIGNMENT);
  149.     buttonPanel.setAlignmentY(TOP_ALIGNMENT);
  150.  
  151.     buttonPanel.add(textButtons);
  152.  
  153.     buttonPanel.add(Box.createVerticalStrut(10));
  154.  
  155.     buttonPanel.add(imageButtons);
  156.     buttonPanel.add(Box.createGlue());
  157.  
  158.  
  159.     // *************** Create the button controls ****************
  160.     JPanel controls = new JPanel() {
  161.         public Dimension getMaximumSize() {
  162.         return new Dimension(300, super.getMaximumSize().height);
  163.         }
  164.     };
  165.     controls.setLayout(new BoxLayout(controls, BoxLayout.Y_AXIS));
  166.     controls.setAlignmentY(TOP_ALIGNMENT);
  167.     controls.setAlignmentX(LEFT_ALIGNMENT);
  168.  
  169.     JPanel buttonControls = SwingSet.createHorizontalPanel(true);
  170.     buttonControls.setAlignmentY(TOP_ALIGNMENT);
  171.     buttonControls.setAlignmentX(LEFT_ALIGNMENT);
  172.  
  173.     JPanel leftColumn = SwingSet.createVerticalPanel(false);
  174.     leftColumn.setAlignmentX(LEFT_ALIGNMENT);
  175.     leftColumn.setAlignmentY(TOP_ALIGNMENT);
  176.  
  177.     JPanel rightColumn = SwingSet.createVerticalPanel(false);
  178.     rightColumn.setAlignmentX(LEFT_ALIGNMENT);
  179.     rightColumn.setAlignmentY(TOP_ALIGNMENT);
  180.  
  181.     buttonControls.add(leftColumn);
  182.     buttonControls.add(Box.createRigidArea(swing.hpad20));
  183.     buttonControls.add(rightColumn);
  184.     buttonControls.add(Box.createRigidArea(swing.hpad20));
  185.  
  186.     controls.add(buttonControls);
  187.  
  188.     // Display Options
  189.     JLabel l = new JLabel("Display Options:");
  190.     leftColumn.add(l);
  191.     l.setFont(swing.boldFont);
  192.  
  193.      JCheckBox bordered = new JCheckBox("Paint Border");
  194.     bordered.setToolTipText("Click here to turn border painting on or off.");
  195.         bordered.setMnemonic('b');
  196.     bordered.setSelected(true);
  197.      bordered.addItemListener(swing.buttonDisplayListener);
  198.      leftColumn.add(bordered);
  199.  
  200.      JCheckBox focused = new JCheckBox("Paint Focus");
  201.     focused.setToolTipText("Click here to turn focus painting on or off.");
  202.         focused.setMnemonic('f');
  203.      focused.setSelected(true);
  204.      focused.addItemListener(swing.buttonDisplayListener);
  205.      leftColumn.add(focused);
  206.  
  207.     JCheckBox enabled = new JCheckBox("Enabled");
  208.     enabled.setSelected(true);
  209.     enabled.setToolTipText("Click here to enable or disable the toggle buttons.");
  210.         enabled.setMnemonic('e');
  211.     enabled.addItemListener(swing.buttonDisplayListener);
  212.     leftColumn.add(enabled);
  213.  
  214.  
  215.     leftColumn.add(Box.createRigidArea(swing.vpad20));
  216.  
  217.     
  218.     l = new JLabel("Pad Amount:");
  219.     leftColumn.add(l);
  220.     l.setFont(swing.boldFont);
  221.     
  222.     group = new ButtonGroup();
  223.     JRadioButton defaultPad = new JRadioButton("Default");
  224.         defaultPad.setMnemonic('d');
  225.     defaultPad.setToolTipText("Uses the default padding between the border and label.");
  226.     group.add(defaultPad);
  227.     defaultPad.setSelected(true);
  228.      defaultPad.addItemListener(swing.buttonPadListener);
  229.     leftColumn.add(defaultPad);
  230.  
  231.     JRadioButton zeroPad = new JRadioButton("0");
  232.         zeroPad.setMnemonic('0');
  233.     group.add(zeroPad);
  234.     zeroPad.setToolTipText("Uses no padding between the border and label.");
  235.      zeroPad.addItemListener(swing.buttonPadListener);
  236.     leftColumn.add(zeroPad);
  237.  
  238.     JRadioButton tenPad = new JRadioButton("10");
  239.         tenPad.setMnemonic('1');
  240.     tenPad.setToolTipText("Uses a 10 pixel pad between the border and label.");
  241.     group.add(tenPad);
  242.      tenPad.addItemListener(swing.buttonPadListener);
  243.     leftColumn.add(tenPad);
  244.     
  245.     leftColumn.add(Box.createRigidArea(swing.vpad20));
  246.  
  247.  
  248.     // *************** Create the layout controls ****************
  249.     // Create Text Position Layout control
  250.     JPanel textPosition = DirectionButton.createDirectionPanel(true, "E", swing.textPositionListener);
  251.     JPanel labelAlignment = DirectionButton.createDirectionPanel(true, "C", swing.labelAlignmentListener);
  252.  
  253.     l = new JLabel("Text Position:");
  254.     rightColumn.add(l);
  255.     l.setFont(swing.boldFont);
  256.      rightColumn.add(textPosition);
  257.  
  258.      rightColumn.add(Box.createRigidArea(swing.vpad20));
  259.  
  260.     l = new JLabel("Content Alignment:");
  261.     rightColumn.add(l);
  262.     l.setFont(swing.boldFont);
  263.      rightColumn.add(labelAlignment);
  264.  
  265.      rightColumn.add(Box.createGlue());
  266.  
  267.     add(buttonPanel);
  268.     add(Box.createRigidArea(swing.hpad10));
  269.      add(controls);
  270.     }
  271.  
  272.     
  273. }
  274.